package com.centerm.structure.dao;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.centerm.structure.domain.Permission;
import com.centerm.structure.dto.PermissionInfo;

/**
* @ClassName: PermissionDao
* @Description: 权限数据层接口
* @author czy
* @date 2017年8月10日
 */
@Repository
public interface PermissionDao {
	
	/**
	 * @Description: 获取所有权限记录
	 * @author czy
	 * @date 2017年8月14日
	 * @param
	 * @return List<Permission>
	 */
	List<Permission> listAll();
	
	/**
     * @Description: 根据条件获取权限记录
     * @author czy
     * @date 2017年8月14日
     * @param 
     * @return List<Permission>
      */
	List<Permission> listByParam(PermissionInfo permissionInfo);
	
	/**
	* @Description: 根据id删除记录
	* @author czy
	* @date 2017年8月10日
	* @param id
	* @return int
	 */
    int deleteById(Integer id);

    /**
     * @Description: 新增记录
     * @author czy
     * @date 2017年8月10日
     * @param record 权限记录
     * @return int
      */
    int insert(Permission record);

    /**
     * @Description: 根据id获取记录
     * @author czy
     * @date 2017年8月10日
     * @param id
     * @return 记录
      */
    Permission getById(Integer id);

    /**
     * @Description: 更新记录（只针对非空字段）
     * @author czy
     * @date 2017年8月10日
     * @param record 记录
     * @return int
      */
    int update(Permission record);
    
    /**
     * @Description: 获取用户所有权限
     * @author czy
     * @date 2017年8月17日
     * @param List<Permission>
     * @return 用户id
      */
    List<Permission> listUserPermsssion(Integer userId);

    /**
     * @Description: 获取用户所有权限Code
     * @author czy
     * @date 2017年8月17日
     * @param List<String>
     * @return 用户id
      */
	List<String> listUserPermsssionCode(Integer userId);
}